const Koa=require('koa2');
const app=new Koa();


const main=ctx=>{
    ctx.throw(500);
};
app.use(main);

app.on('error',(err,ctx)=>{
    console.log('ERROR:\n',err);
    ctx.response.status=err.statusCode || err.status || 500;
    ctx.body={
        message:err.message
    };
});

app.listen(3002,()=>{
    console.log('\n\nPort 3002',new Date().toLocaleTimeString());
});

/*
    app error的监听问题：
    1.没有捕获错误（控制台会有错误输出）
    2.不能自定义响应内容（页面会显示Koa默认的错误内容，而忽略在error回调中设置的body内容）
*/